package com.xuan.bazi.core;

import lombok.Data;

import java.util.Date;

/**
 * 八字设置
 *
 * @author kty
 */
@Data
public class BaZiSetting {

    /**
     * 性别（0:女，1:男）
     */
    private int sex;

    /**
     * 姓名
     */
    private String name;

    /**
     * 测事
     */
    private String occupy;

    /**
     * 地区
     */
    private String address;

    /**
     * 日期
     */
    private Date date;

    /**
     * 日期类型（0:公历，1:农历）
     */
    private int dateType;

    /**
     * 子时流派（0:晚子时日柱按明天，1:晚子时日柱按当天）
     */
    private int ziShiLiuPai;

    /**
     * 起运流派（0:按天数和时辰数计算：3天1年、1天4个月、1时辰10天，1:按分钟数计算：4320分=1年、360分=1月、12分=1天、1分=2小时）
     */
    private int qiYunLiuPai;

    /**
     * 年柱（0:以正月初一作为新年的开始，1:以立春当天作为新年的开始，2:以立春交接的时刻作为新年的开始）
     */
    private int yearZhuSet;

    /**
     * 月柱（0:以节交接当天起算，1:以节交接时刻起算）
     * <p>
     * <p同子时流派</p>
     */
    private int monthZhuSet;

    /**
     * 日柱（0:晚子时日柱算当天，1:晚子时日柱算明天）
     */
    private int dayZhuSet;

    /**
     * 时柱（0:支持早子时和晚子时）
     */
    private int hourZhuSet;

    /**
     * 神煞：学堂（0:禄命法，1:子平法）
     */
    private int xueTangSet;

    /**
     * 神煞：词馆（0:禄命法，1:子平法）
     */
    private int ciGuanSet;

//----------------------------------------------------------------------------------------------------------------------------------------------------

    /**
     * 初始化设置
     */
    public BaZiSetting() {

        this.sex = BaZiEnum.SEX_MAN.getMark(); // 性别（默认→ 男）
        this.name = null; // 姓名（默认→ 空）
        this.occupy = null; // 占事（默认→ 空）
        this.address = null; // 地区（默认→ 空）
        this.date = new Date(); // 日期（默认→ 当前时刻）
        this.dateType = BaZiEnum.DATE_TYPE_SOLAR.getMark(); // 日期类型（默认→ 公历）
        this.ziShiLiuPai = BaZiEnum.ZI_SHI_LIU_PAI_TODAY.getMark(); // 子时流派（默认→ 晚子时日柱按当天）
        this.qiYunLiuPai = BaZiEnum.QI_YUN_LIU_PAI_DAY.getMark(); // 起运流派（默认→ 按天数和时辰数计算：3天1年、1天4个月、1时辰10天）
        this.yearZhuSet = BaZiEnum.YEAR_ZHU_SET_LICHUN_DAY.getMark(); // 年柱（默认→ 以立春当天作为新年的开始）
        this.monthZhuSet = BaZiEnum.MONTH_ZHU_SET_SHIKE.getMark(); // 月柱（默认→ 以节交接时刻起算）
        this.dayZhuSet = BaZiEnum.DAY_ZHU_SET_TODAY.getMark(); // 日柱（默认→ 晚子时日柱算当天）
        this.hourZhuSet = BaZiEnum.HOUR_ZHU_SET.getMark(); // 时柱（默认→ 支持早子时和晚子时）
        this.xueTangSet = BaZiEnum.XUE_TANG_LU_MING.getMark(); // 神煞：学堂（默认→ 禄命法）
        this.ciGuanSet = BaZiEnum.CI_GUAN_LU_MING.getMark(); // 神煞：词馆（默认→ 禄命法）

    }


}
